<?php

class ArchivosDoc extends CombinadorFactory {
	public function ArchivosDoc($enlaceArchivo){
		parent::CombinadorFactory();
		$this->enlaceArchivo=$enlaceArchivo;
	}
	public function generarArchivoInsumo($campos){
		if (!$campos || ! is_array($campos) || count($campos)<3) 
			 	throw new Exception("no hay campos para el Insumo o son insuficientes");
		$fp=@fopen($this->rutaInsumo.$this->nombreInsumo,'w+');
		
		 if (!$fp)
			 	throw  new Exception("ERROR..No se pudo abrir el archivo ".
			 							$this->rutaInsumo.$this->nombreInsumo);
		 foreach ($campos as $clave=>$valor){
			 	fputs ($fp,"{$clave}={$valor}"."\n");
		 		}
		fclose($fp); 
	}
	protected function combinar(){
		global $ambiente,$servProcDocs;
		$this->setArchivoCombinar();
		$vp=($this->vistaPrevia)?"si":"n";
		$estadoTransaccion=0;
		ob_start();
		include("http://$servProcDocs/docgen/servlet/WorkDistributor?accion=1&ambiente=$ambiente&archinsumo=$this->nombreInsumo&vp=$vp");
		ob_end_clean();
		if ($estadoTransaccion!=0)
				throw new Exception("No se pudo completar la transaccion debido a posibles problemas como: \n".
    				 				"\n - Su archivo de combinaci&oacute;n no corresponde a la plantilla establecida. ".
    				 				"\n - Problemas con el servidor de combinacion de documentos. ".
    				 				"\n - Problemas con la red. ".
	  	  			 				"\n - Por favor verifique e intente mas tarde ");	
		  

	}
	protected function salvar(){
		global $ruta_raiz,$dirCombinacionTEMP;
		if(!$this->vistaPrevia){
			$salida=@copy($this->enlaceTemporal,$this->archivoCombinador.".cb");
		   	$salida1=@copy($this->archivoCombinador,$this->enlaceArchivo);
		   	if(!salida || !$salida1)
		   		throw new Exception("No se Pudo Copiar el Archivo");
		}else{
			 $archivo=$this->enlaceTemporal;
		}
		return $this->enlaceArchivo;
	}
}

?>